package edu.northwestern.cbits.purple_robot_manager.probes.builtin;
import java.io.IOException;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import edu.northwestern.cbits.purple_robot_manager.activities.RealTimeProbeViewActivity;
import edu.northwestern.cbits.purple_robot_manager.activities.WebkitActivity;
import edu.northwestern.cbits.purple_robot_manager.logging.LogManager;
public abstract class Continuous3DProbe extends ContinuousProbe
{
protected static final String X_KEY = "X";
protected static final String Y_KEY = "Y";
protected static final String Z_KEY = "Z";
protected static final String[] fieldNames =
{ X_KEY, Y_KEY, Z_KEY };
public String getDisplayContent(Activity activity)
{
try
{
String template = WebkitActivity.stringForAsset(activity, "webkit/epoch_chart_line_3_values.html");
JSONArray xSeries = new JSONArray();
JSONArray ySeries = new JSONArray();
JSONArray zSeries = new JSONArray();
JSONArray data = new JSONArray();
JSONObject xData = new JSONObject();
xData.put("label", "X");
xData.put("values", xSeries);
data.put(xData);
JSONObject yData = new JSONObject();
yData.put("label", "Y");
yData.put("values", ySeries);
data.put(yData);
JSONObject zData = new JSONObject();
zData.put("label", "Z");
zData.put("values", zSeries);
data.put(zData);
template = template.replace("{{{ data_json }}}", data.toString());
return template;
}
catch (IOException | JSONException e)
{
LogManager.getInstance(activity).logException(e);
}
return null;
}
public Intent viewIntent(Context context)
{
Intent i = new Intent(context, RealTimeProbeViewActivity.class);
i.putExtra(RealTimeProbeViewActivity.PROBE_ID, this.getTitleResource());
return i;
}
protected abstract String tableName();
protected abstract Map<String, String> databaseSchema();
}